package com.greenold.dashboard.mapper;

import com.greenold.dashboard.domain.vo.DataVO;
import com.greenold.dashboard.domain.vo.ElderAgeVO;
import com.greenold.dashboard.domain.vo.TodoTaskVO;
import com.greenold.dashboard.domain.vo.TopPieDataVO;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;
import java.util.Map;

/**
 * @author YueYang
 * Created on 2025/10/17 11:52
 * @version 1.0
 */
@Mapper
public interface DashboardMapper {
    /**
     * 查询所有老人数量
     *
     * @return 返回老人数量
     */
    Long selectTotalElder();

    /**
     * 查询请假老人数量
     *
     * @return 返回请假老人数量
     */
    Long selectLeaveElder();

    /**
     * 查询空闲床位数量
     *
     * @return 返回空闲床位数量
     */
    Long selectFreeBedNum();

    /**
     * 查询占用床位数量
     *
     * @return 返回占用床位数量
     */
    Long selectOccupiedBedNum();

    /**
     * 查询所有服务单数量
     *
     * @return 返回所有服务单数量
     */
    Long selectServiceNum();

    /**
     * 查询所有已执行和护理项目内的服务单数量
     *
     * @return 返回所有已执行和护理项目内的服务单数量
     */
    Long selectServiceNumWithProject();

    /**
     * 查询普通员工数量
     *
     * @return 返回普通员工数量
     */
    Long selectCommonNum();

    /**
     * 查询管理人员数量
     *
     * @return 返回管理人员数量
     */
    Long selectManagerNum();

    /**
     * 查询月度账单
     *
     * @return 返回月度账单金额
     */
    Long selectMonthlyBill();

    /**
     * 查询服务费用
     *
     * @return 返回服务费用金额
     */
    Long selectServiceFee();

    /**
     * 查询代办任务列表
     *
     * @return 返回代办任务列表
     */
    List<TodoTaskVO> selectTodoTask();

    /**
     * 查询老人等级分布
     *
     * @return 返回老人等级分布
     */
    List<TopPieDataVO> selectElderLevel();

    /**
     * 查询老人年龄分布
     *
     * @return 返回老人年龄分布
     */
    List<ElderAgeVO> selectElderAge();

    /**
     * 查询雷达图服务能力分布
     *
     * @return 返回服务能力分布
     */
    List<DataVO> selectServiceAbility();

    /**
     * 查询订单表中的最大服务数量
     *
     * @return 返回订单表中的最大服务数量
     */
    Long getOrderMax();
}
